Ansible是一個IT自動化工具。它可以配置系統,開發軟體,或者編排高階的IT任務,例如持續開發或者零宕機滾動更新。
Mac
brew install ansible
Ubuntu & Debian
sudo apt-get install ansible
Python
pip install ansible
$ ansible all -m ping
server1 | SUCCESS => {
"changed": false,
"ping": "pong"
}
echo
$ ansible all -m command -a "echo Hello World"
server1 | SUCCESS | rc=0 >>
Hello World
建立 Ubuntu 14.04 的 Vagrantfile 設定檔
vagrant init ubuntu/trusty64
建立虛擬機器並開啟機器
vagrant up
取得虛擬機的 OpenSSH 設定:請特別留意 HostName、User、Port 還有 IdentityFile 的值
vagrant ssh-config
設定 ansible.cfg:remote_user 和 private_key_file 的設定分別對應 ssh-config 的 User 和 IdentityFile。
vi ansible.cfg
[defaults]
inventory = hosts
remote_user = vagrant
private_key_file = .vagrant/machines/default/virtualbox/private_key
host_key_checking = False
設定 hosts:ansible_ssh_host 和 ansible_ssh_port 的設定分別對應 ssh-config 的 HostName 和 Port。
$ vi hosts
server1 ansible_ssh_host=127.0.0.1 ansible_ssh_port=2200
[local]
server1
$ ansible all -m command -a 'echo Hello World on Vagrant.'
server1 | SUCCESS | rc=0 >>
Hello World on Vagrant.
$ vi hello_world.yml
---
- name: say 'hello world'
hosts: all
tasks:
- name: echo 'hello world'
command: echo 'hello world'
register: result
- name: print stdout
debug:
msg: "{{ result.stdout }}"
執行 playbook:在這個範例中,我們執行了 1 個 Play、3 個 Tasks 和 2 個 Modules
ansible-playbook hello_world.yml
在學習 Ansible 的過程中,很感謝凍仁的文件,清晰好懂的文件真的幫助我們快速入手.
ansible中文權威指南
ansible/ansible-examples
現代 IT 人一定要知道的 Ansible 自動化組態技巧